let tmp =123;

if(true){
    // tmp = 'abc';
    // console.log(tmp);

    let tmp;
    console.log(tmp);   //undefined

    tmp = 456;
    console.log(tmp);   // 456
}



function f1() {
    let n =5;
    if(true){
        let n=10;
    }
    console.log(n);  // 5
}
// let实际上为 JavaScript 新增了块级作用域。
// 表示外层代码块不受内层代码块的影响。
f1();

// ES6 引入了块级作用域，明确允许在块级作用域之中声明函数。
// ES6 规定，块级作用域之中，函数声明语句的行为类似于let，在块级作用域之外不可引用。

